package com.sq.activity.domain;

import java.time.LocalDate;
import java.util.Date;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import com.sq.common.annotation.Excel;
import com.sq.common.core.domain.BaseEntity;

/**
 * 活动信息对象 activity
 * 
 * @author shan
 * @date 2025-02-12
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("活动信息实体")
public class Activity extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**
    * 活动ID（主键，自增）
    */
    @ApiModelProperty(value = "主键ID")
    private Long id;

    /**
    * 活动标题
    */
    @Excel(name = "活动标题")
    @ApiModelProperty(value = "活动标题")
    private String title;

    /**
    * 活动描述
    */
    @ApiModelProperty(value = "活动标题")
    private String description;

    /**
    * 活动图片
    */
    @Excel(name = "活动图片")
    @ApiModelProperty(value = "活动图片")
    private String image;

    /**
    * 活动开始时间
    */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "活动开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "活动开始时间")
    private LocalDate startTime;

    /**
    * 活动结束时间
    */
    @ApiModelProperty(value = "活动结束时间")
    private LocalDate endTime;

    /**
    * 活动地点
    */
    @Excel(name = "活动地点")
    @ApiModelProperty(value = "活动地点")
    private String location;

    /**
    * 参与人数
    */
    @Excel(name = "参与人数")
    @ApiModelProperty(value = "参与人数")
    private Long participants;

    /**
    * 最大参与人数
    */
    @Excel(name = "最大参与人数")
    @ApiModelProperty(value = "最大参与人数")
    private Long maxParticipants;

    /**
    * 创建者ID
    */
    @ApiModelProperty(value = "最大参与人数")
    private Long sysUserId;

    /**
    * 创建者姓名
    */
    @Excel(name = "创建者姓名")
    @ApiModelProperty(value = "创建者姓名")
    private String sysUserName;

    /**
    * 活动状态（0待审核/1已发布/2已取消/3报名结束/4已开始/5已结束）
    */
    @Excel(name = "活动状态", readConverterExp = "0=待审核/1已发布/2已取消/3报名结束/4已开始/5已结束")
    @ApiModelProperty(value = "活动状态")
    private Long status;

    /**
    * 修改时间
    */
    @ApiModelProperty(value = "活动状态")
    private Date upateTime;

}
